import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
//
//public class Main {
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        for (int i = 0; i < n; i++) {
//            int num = scanner.nextInt();
//            factorize(num);
//        }
//        scanner.close();
//    }
//
//    private static void factorize(int num) {
//        for (int i = 2; i * i <= num; i++) {
//            if (num % i == 0) {
//                int count = 0;
//                while (num % i == 0) {
//                    count++;
//                    num /= i;
//                }
//                System.out.println(i + " " + count);
//            }
//        }
//        if (num > 1) {
//            System.out.println(num + " " + 1);
//        }
//    }
//}

//
//public class Main {
//    public static double func(long num) {
//
//        double count = 1;  //位数
//        int is_two = 0; //2的个数
//        boolean is_f = false;//是否负数
//        boolean is_ou = false;//是否偶数
//
//        double sum = 0;
//        if (num % 2 == 0) is_ou = true;
//
//        if (num < 0) {
//            is_f = true;
//            num = -num;
//        }
//
//        while(num / 10 != 0){
//            count++;
//            if (num % 10 == 2) is_two++;
//            num = num / 10;
//        }
//        //判断最后一个数
//        if (num % 10 == 2) is_two++;
//
//        sum = is_two / count;
//        if (is_f) sum = sum * 1.5;
//        if (is_ou) sum = sum * 2;
//
//        return sum;
//    }
//
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        long num = scanner.nextLong();
//        double t = func(num);
//        System.out.printf("%.2f%%\n",t * 100);
//    }
//}

//import java.util.Scanner;
//
//public class Main {
//    // 1. 参数类型从int改为long
//    public static double func(long num) {
//
//        double count = 1;  // 位数（初始为1，因至少有1位数字）
//        int is_two = 0;    // 2的个数（int足够，因最多9223372036854775807共19位，is_two最大19）
//        boolean is_f = false;// 是否负数
//        boolean is_ou = false;// 是否偶数（对long同样适用%2判断）
//
//        double sum = 0;
//        // 2. 偶数判断：long类型同样支持%运算
//        if (num % 2 == 0) is_ou = true;
//        // 3. 负数判断：long类型支持<比较
//        if (num < 0) {
//            is_f = true;
//            num = -num; // 转为正数处理（避免负数%10得到负余数，如-12%10=-2）
//        }
//
//        // 4. 位数统计与“2”的计数：循环条件改为long类型的num
//        while (num / 10 != 0) {
//            count++;
//            if (num % 10 == 2) is_two++;
//            num = num / 10;
//        }
//        // 判断最后一位数字（循环结束后num只剩1位）
//        if (num % 10 == 2) is_two++;
//
//        // 原有业务逻辑不变（is_two是int，count是double，除法结果为double）
//        sum = is_two / count;
//        if (is_f) sum = sum * 1.5;
//        if (is_ou) sum = sum * 2;
//
//        return sum;
//    }
//
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        // 5. 输入读取：使用nextLong()读取大整数（避免用nextInt()导致溢出）
//        long num = scanner.nextLong();
//        double t = func(num);
//        // 优化输出：保留2位小数（避免科学计数法，如0.333333→33.33%）
//        System.out.printf("%.2f%%\n", t * 100);
//        scanner.close();
//    }
//}

public class Main {
    static class Student implements Comparable<Student> {

        public int id;
        public String name;
        public int year;
        public int mouth;
        public int day;

        public Student(int id, String name, int year, int mouth, int day) {
            this.id = id;
            this.name = name;
            this.year = year;
            this.mouth = mouth;
            this.day = day;
        }

        @Override
        public int compareTo(Student o) {
            if (o.year != this.year) return this.year - o.year;
            else if (o.mouth != this.mouth) return this.mouth - o.mouth;
            else if (o.day != this.day) return  this.day - o.day;
            else return  this.id - o.id;
        }
    }

    public static void main(String[] args) {
       Scanner scanner =new Scanner(System.in);
       int n = scanner.nextInt();
       scanner.nextLine();
        Student[] students = new Student[n];
        for (int i = 0; i < n; i++) {
            String name = scanner.next();
            int year = scanner.nextInt();
            int month = scanner.nextInt();
            int day = scanner.nextInt();
            students[i] = new Student(i, name, year, month, day);
        }
        Arrays.sort(students);
        for (int i = 0; i < n; i++) {
            System.out.println(students[i].name+" ");
        }
    }
}

//
//public class Main {
//
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int k = scanner.nextInt();
//        int n = 1;
//        double t = 1;
//        double sum = 1;
//        while(sum < k){
//            n++;
//            t = 1.0 / n;
//            sum = sum + t;
//        }
//        System.out.println(n);
//
//    }
//}
